import { ALL_CATEGORY_ITEM } from '@/constants/index.js'
import { getCategory } from '@/api/category'
import { CATEGORY_NOMAR_DATA } from '@/constants/index.js'
export default {
  // 独立作用域
  namespaced: true,
  state: () => {
    return {
      // 1.让categorys 具备一个初始化数据
      // 2.从服务端获取数据，替换初始化数据
      // 3.为了防止初始化数据太老，我们每次把获取到的新数据(localStorage)，都作为下一次的初始化数据
      categorys: CATEGORY_NOMAR_DATA
    }
  },
  mutations: {
    /**
     *  为categorys赋值
     */
    setCategorys(state, categorys) {
      state.categorys = [ALL_CATEGORY_ITEM, ...categorys]
    }
  },
  actions: {
    /**
     * 获取 category 数据，并自动保存到 vuex 中
     */
    async useCategoryData(context) {
      const { categorys } = await getCategory()
      // 这里用commit 而且不需要/category/setCategorys
      context.commit('setCategorys', categorys)
    }
  }
}
